#pragma once

class Color;

class ILightSourceObject:
	public INode
{
public:
	ILightSourceObject(const NodeCreation& nc);
	virtual ~ILightSourceObject();

	/*--IRender-----------------------------------------------------------------*/
	virtual void OnRender(const RenderTask* renderTask, uint camarg) override;

	/*--INode-------------------------------------------------------------------*/
	virtual uint TreeCalc() override;

	/*--------------------------------------------------------------------------*/
	virtual void DrawLightVolume() = 0;
	/*--------------------------------------------------------------------------*/

	const Color& GetAmbient() const;
	void SetAmbient(const Color& nval);

	const Color& GetDiffuse() const;
	void SetDiffuse(const Color& nval);

	const Color& GetSpecular() const;
	void SetSpecular(const Color& nval);

private:
	Color m_ambient;
	Color m_specular;
	Color m_diffuse;

	float m_radius;
};
